/**
 * 时间戳转日期 yyyy-MM-dd hh:mm:ss
 * @Author: xuguanlong
 * @param   {[type]}   unixtime [时间戳]
 * @return  {[type]}            [时间戳对应的日期]
 */
function js_date_time(unixtime) {
  if (unixtime === '' || unixtime === null || typeof (unixtime) === undefined) {
    return null;
  }
  const timestr = new Date((unixtime));
  const datetime = date_format(timestr, 'yyyy-MM-dd hh:mm:ss');

  return datetime;
}

/**
 * 日期格式化  yyyy-MM-dd hh:mm:ss
 * @Author: xuguanlong
 * @param   {[type]}   date [description]
 * @return  {[type]}        [description]
 */
function date_format(date, format) {
  const o = {
    "M+": date.getMonth() + 1, //month
    "d+": date.getDate(), //day
    "h+": date.getHours(), //hour
    "m+": date.getMinutes(), //minute
    "s+": date.getSeconds(), //second
    "q+": Math.floor((date.getMonth() + 3) / 3), //quarter
    "S": date.getMilliseconds() //millisecond
  };
  if (/(y+)/.test(format)) {
    format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
  }

  for (var k in o) {
    if (new RegExp("(" + k + ")").test(format)) {
      format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
    }
  }
  return format;
}

module.exports = js_date_time;